#ifndef WARLOCKLIB_GLOBAL_H
#define WARLOCKLIB_GLOBAL_H

#ifdef OS_WIN
#ifdef DLL_EXPORT
#define WARLOCKLIBSHARED_EXPORT __declspec(dllexport)
#else
#define WARLOCKLIBSHARED_EXPORT __declspec(dllimport)
#endif
#else //OSWIN
#define WARLOCKLIBSHARED_EXPORT
#endif //OSWIN

#ifndef WARLOCK_NS_BEGIN
#define WARLOCK_NS_BEGIN namespace warlock {
#endif

#ifndef WARLOCK_NS_END
#define WARLOCK_NS_END }
#endif

#define SIMPLE_PROPERTY(type, lower, upper, value) \
protected:\
type m_##lower{value};\
public:\
inline type lower() const {return m_##lower;}\
void set##upper(type __value__){if(m_##lower!=__value__) m_##lower=__value__;}

#endif // WARLOCKLIB_GLOBAL_H
